home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 November / Chip 11-96.iso / workshop / other / testlin / testlin.exe / LINUX / SBIN / KEYCONFI.{_E < prev    next >
Encoding:
Text File  |  1994-09-27  |  3.0 KB  |  104 lines

  1. #!/bin/sh
  2. # Copyright 1993, Patrick Volkerding, Moorhead, MN.
  3. # Use and redistribution covered by the same terms as the "setup" script.
  4. if [ ! -d /usr/lib/kbd/keytables ]; then
  5.  dialog --title "Required files are missing" --msgbox "You cannot remap your keyboard until you install the \
  6. package 'keymaps.tgz' on disk A3. It contains the keyboard map files \
  7. required to proceed." 9 40
  8.  exit
  9. fi
  10. ls /usr/lib/kbd/keytables/*.gz 1> /dev/null 2> /dev/null
  11. if [ $? = 0 ]; then
  12.  SUFFIX=gz
  13. else
  14.  SUFFIX=map
  15. fi
  16.  
  17. cat << EOF > /tmp/keyscript
  18. dialog --title "KEYBOARD MAP SELECTION" --menu "
  19. You may select one of the following keyboard maps.
  20. You may use the UP/DOWN arrow keys to scroll through
  21. the whole list of choices.
  22. " 20 68 9 \\
  23. EOF
  24. for mapname in /usr/lib/kbd/keytables/*.$SUFFIX; do
  25.  echo "\"$mapname\" \"\" \\" >> /tmp/keyscript
  26. done
  27. echo "2> /tmp/keymp" >> /tmp/keyscript
  28. echo 'ERROR=$?' >> /tmp/keyscript
  29. echo 'if [ $ERROR = 1 -o $ERROR = 255 ]; then' >> /tmp/keyscript
  30. echo '  exit 1;' >> /tmp/keyscript
  31. echo 'fi' >> /tmp/keyscript
  32.  
  33. while [ 0 ]; do
  34.  sh /tmp/keyscript
  35.  if [ $? = 1 ]; then
  36.   rm -f /tmp/keymp /tmp/keyscript
  37.   exit;
  38.  fi
  39.  MAPNAME="`cat /tmp/keymp`"
  40.  SHORTMAP="`basename $MAPNAME`"
  41.  echo "$SHORTMAP" > /tmp/SeTkeymap
  42.  rm /tmp/keymp
  43.  cp $MAPNAME /tmp
  44.  MAPNAME=$SHORTMAP
  45.  
  46.  if [ $SUFFIX = gz ]; then
  47.   echo "$SHORTMAP" > /tmp/SeTkeymaz
  48.   REALNAME="`gzip -l /tmp/$SHORTMAP | cut -b28- | sed -n '$ p'`"
  49.   REALNAME="`basename $REALNAME`"
  50.   gzip -df /tmp/$SHORTMAP
  51.   echo "$REALNAME" > /tmp/SeTkeymap
  52.   MAPNAME=$REALNAME
  53.  fi
  54.  
  55.  loadkeys /tmp/$MAPNAME 1> /dev/null 2> /dev/null
  56.  
  57.  while [ 0 ]; do
  58.   dialog --title "KEYBOARD TEST" --inputbox \
  59. "\n\
  60. OK, the new map is now installed. You may now test it by typing\n\
  61. anything you want. To quit testing the keyboard, enter [y] on a\n\
  62. line by itself to accept the map and go on, or [n] on a line by\n\
  63. itself to reject the current keyboard map and select a new one. " 13 70 2> /tmp/keytest
  64.   if [ $? = 1 ]; then
  65.    REPLY="n"
  66.    break;
  67.   fi
  68.   REPLY="`cat /tmp/keytest`"
  69.   rm -f /tmp/keytest
  70.   if [ "$REPLY" = "n" -o "$REPLY" = "y" ]; then
  71.    break;
  72.   fi
  73.  done
  74.  if [ "$REPLY" = "y" ]; then
  75.   break;
  76.  else
  77.   rm -f /tmp/`cat /tmp/SeTkeymap`
  78.   rm -f /tmp/SeTkeym*
  79.   continue;
  80.  fi
  81. done
  82.  
  83. # Load keyboard map (if any) when booting
  84. if [ -r /tmp/SeTkeymap ]; then
  85.  MAPNAME="`cat /tmp/SeTkeymap`"
  86.  if fgrep "sh /etc/rc.d/rc.keymap" $T_PX/etc/rc.d/rc.local 1> /dev/null 2> /dev/null ; then
  87.   echo >> /dev/null # ?
  88.  else
  89.   echo "# Load custom keyboard map" >> $T_PX/etc/rc.d/rc.local
  90.   echo "sh /etc/rc.d/rc.keymap" >> $T_PX/etc/rc.d/rc.local
  91.  fi
  92. # mkdir -p $T_PX/usr/lib/kbd/keytables
  93.  if [ ! -r $T_PX/usr/lib/kbd/keytables/$MAPNAME ]; then
  94.   cp /tmp/$MAPNAME $T_PX/usr/lib/kbd/keytables
  95.   chmod 755 $T_PX/usr/lib/kbd/keytables
  96.  fi
  97.  echo "#!/bin/sh" > $T_PX/etc/rc.d/rc.keymap
  98.  echo "echo 'Loading keyboard map \"$MAPNAME\"...'" >> $T_PX/etc/rc.d/rc.keymap
  99.  echo "/usr/bin/loadkeys /usr/lib/kbd/keytables/$MAPNAME" >> $T_PX/etc/rc.d/rc.keymap
  100.  chmod 755 $T_PX/etc/rc.d/rc.keymap
  101. fi
  102.  
  103.